package com.yunxi.service.localService.sat;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.service.IServicePlus;
import com.yunxi.model.sat.SatCustomerFollow;
import com.yunxi.sat.pojo.FollowRemindVO;
import com.yunxi.sat.pojo.SatCustomerClueVO;
import com.yunxi.sat.pojo.SatCustomerFollowCountVO;
import com.yunxi.sat.pojo.SatCustomerFollowVO;
import java.util.List;

/**
 * <p>
 * 客户跟进记录表 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-07-11
 */
public interface SatCustomerFollowService extends IServicePlus<SatCustomerFollow> {

    SatCustomerClueVO getCustomerClueInfo(SatCustomerFollow satCustomerFollow);

    void updateCustomerLevel(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    /**
     * 根据客户编号获取级别
     * @param satCustomerFollowVO
     * @return
     * @throws Exception
     */
    String getCustomerLevelByNo(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    /**
     * 待跟进客户
     * @param satCustomerFollowVO
     * @return
     * @throws Exception
     */
    List<SatCustomerFollowVO> waitFollow(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    PageInfo<SatCustomerFollowVO> waitFollowForPage(SatCustomerFollowVO satCustomerFollowVO,Integer pageNum,Integer pageSize)throws Exception;

    /**
     * 逾期跟进客户
     * @param satCustomerFollowVO
     * @return
     * @throws Exception
     */
    List<SatCustomerFollowVO> lateFollow(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    PageInfo<SatCustomerFollowVO> lateFollowForPage(SatCustomerFollowVO satCustomerFollowVO,Integer pageNum,Integer pageSize)throws Exception;

    /**
     * 老客户跟进
     * @param satCustomerFollowVO
     * @return
     * @throws Exception
     */
    List<SatCustomerFollowVO> goodCustomerFollow(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    PageInfo<SatCustomerFollowVO> goodCustomerFollowForPage(SatCustomerFollowVO satCustomerFollowVO,Integer pageNum,Integer pageSize)throws Exception;

    /**
     * 销售顾问今日跟进提醒报表
     * @param followRemindVO
     * @return
     * @throws Exception
     */
    FollowRemindVO followRemind(FollowRemindVO followRemindVO)throws Exception;

    /**
     * 销售经理今日跟进提醒报表
     * @param followRemindVO
     * @return
     * @throws Exception
     */
    FollowRemindVO manageFollowRemind(FollowRemindVO followRemindVO)throws Exception;

    List<SatCustomerFollowVO> getFollowsByNo(SatCustomerFollowVO satCustomerFollowVO)throws Exception;

    String queryDictCn(String parentKey,String key);

    List<SatCustomerFollowCountVO> getWaitFollowCount(SatCustomerFollowCountVO satCustomerFollowCountVO)throws Exception;
}
